import store from '@/pages/store';
import { toLoginWithFrom } from '@/utils/common';
import { message } from 'antd';
import axios from 'axios';

const request = axios.create({
  // 应该针对开发和生产环境, 配置不同的baseUrl
  // baseURL: process.env.NODE_ENV === 'development' ? '' : '',
  timeout: 60000,
});
// 请求拦截器
request.interceptors.request.use(
  (config) => {
    config.headers.token = store.getState()?.authority?.token || '';
    return config;
  },
  (error) => Promise.reject(error),
);

// 响应拦截器
request.interceptors.response.use(
  (res) => {
    if (res.data.code === '200') {
      // 如果不是get请求, 就做提醒
      if (res.config.method !== 'get') {
        if (!res.config.silent) {
          message.success(res.data.message);
        }
      }
      // 如果需要全量的数据, 就添加配置参数
      return res.config.fullRes ? res.data : res.data.data;
    }
    if (res.data.code === '10119') {
      toLoginWithFrom();
    }
    message.error(res.data.message);
    throw new Error(res.data.message);
  },
  (error) => Promise.reject(error),
);

export default request;
